package main

import (
	"fmt"
	"reflect"
)

// reflet demo

type cat struct {

}

type dog struct {

}

func refletType(x interface{})  {
	// 我不知道别人调用我这个函数,会传进来什么参数
	// 方式1 通过类型断言
	// 方式2 借助反射
	obj := reflect.TypeOf(x)
	fmt.Println(obj)
	fmt.Printf("%T\n",obj) //*reflect.rtype


}

func main()  {
	var a float32 = 1.34
	var b int64 = 1
	refletType(a)
	refletType(b)
	// 结构体类型
	var c cat
	refletType(c)
	var d dog
	refletType(d)
}
